package com.fac.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 收入统计VO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "收入统计返回对象")
public class IncomeStatVO implements Serializable {

    @ApiModelProperty(value = "总收入", example = "100000.00")
    private BigDecimal totalIncome;

    @ApiModelProperty(value = "租赁收入", example = "80000.00")
    private BigDecimal leaseIncome;

    @ApiModelProperty(value = "维修收入", example = "20000.00")
    private BigDecimal maintenanceIncome;

    @ApiModelProperty(value = "每日收入")
    private List<DailyIncome> dailyIncome;

    @ApiModelProperty(value = "分类收入")
    private List<CategoryIncome> categoryIncome;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @ApiModel(description = "每日收入")
    public static class DailyIncome implements Serializable {

        @ApiModelProperty(value = "日期", example = "2024-01-01")
        private String date;

        @ApiModelProperty(value = "收入金额", example = "5000.00")
        private BigDecimal amount;
    }

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @ApiModel(description = "分类收入")
    public static class CategoryIncome implements Serializable {

        @ApiModelProperty(value = "设备分类名称", example = "加工设备")
        private String categoryName;

        @ApiModelProperty(value = "收入金额", example = "30000.00")
        private BigDecimal amount;
    }
} 